This invention relates generally to systems and methods for providing repeatable process capabilities in object oriented computing systems (also called object oriented computing environments). In particular, the present invention relates to systems and methods which use business process objects to provide such repeatable process capabilities.
In an object oriented environment, there are no programs and data as in the traditional sense. All processing is done by routines known as methods which are encapsulated with the data that they process, into entities known as objects.
An object is anything that has value to the end result, or is an input to the end result of some form of work to be done. All objects are represented by data and methods, which when combined are said to be encapsulated. This encapsulation hides the data of the object from everything except the methods of the object.
The combined set of methods, along with the data that the methods have access to, represents a unit of processing. This unit is known as the behavior of the object. When a set of behaviors is put together to accomplish an end result, it is known as a process.
When an object needs to invoke the methods of another object, it sends the target object a message requesting that a certain method or action be performed on, or with, the target object's data. This behavior may cause other messages to be emitted, expanding the overall behavior that is executed. Each message is comprised of the object and action to be exercised, and is known as an object-action message. The object actually sends messages to a software component called an object manager that makes certain that the target object is available and routes the object-action message to the target object.
Normal execution in an object oriented environment is a single user-directed object-action. This allows the maximum granularity of combinations of behavior for the user, but makes very complex or repetitious behavior difficult to repeat or measure. For a predetermined sequence of object-actions that are to be repeated frequently as a process, this mode of operation is very tedious and error-prone. Control of many processes demands repeatable sequences that can be measured and tracked. Each repeatable sequence is known as a business process. The user selects and sequences the series of object-action pairs to be processed to arrive at a desired result. This mode of operation is dictated by the user-workplace interface model that spreads available objects on the user's desktop, and allows the user to select one object and then choose the action to be performed on the object, or using the object.
When data that is accessible by multiple objects is processed, the state of the data must be managed within the context defined by the user. Data must be recoverable in the same context in which it is used. If an update to data that is contextually related to other data falls, then prior updates to related data may be contextually invalid and must be undone to return to the state that existed prior to the update. Contextually related data is managed by what is known as a unit of work manager. Data that has completed all state changes in a contextual relationship must be committed to the database. When an error occurs, data must be recovered, or rolled back to the original state.
The object manager of an object-oriented processing environment provides the contextual relationship of data that is used by a user. The same context in which a user updates data is used to undo changes when an error occurs.
Since the object manager has knowledge of the objects and actions that are specified by the user, and the sequence in which objects are affected, this information is not only of value for logical unit of work management, but can also be used to define a specific sequence of object-action pairs (messages) that can then be used in a repeatable sequence or business process.